import UIKit

// 函数类型

var arr = [133, 235, 12, 55, 90, 353, 120, 902]

// arr.sort() //改变原数组
let res = arr.sorted() // 不改变原数组

arr.sort { (a: Int, b: Int) in
  //  a > b
  // 等价
  a > b ? true : false
}

print(arr)

/// 离500近的数字
func near500(a: Int, b: Int) -> Bool {
  //  return (a - 500).magnitude < (b - 500).magnitude
  return abs(a - 500) < abs(b - 500)
}

// arr.sort(by: near500(a:b:))
arr.sort(by: near500) // 没有重载冲突的话可以直接使用函数名

print(arr)

func cmpByString(a: Int, b: Int) -> Bool {
  return String(a) < String(b)
}

print(arr.sorted(by: cmpByString))
